package com.rem.chat.service;

import com.rem.chat.pojo.request.PageRequest;
import com.rem.chat.pojo.request.UpdateAddRequest;
import com.rem.chat.pojo.request.UpdateModifyRequest;
import com.rem.chat.pojo.request.UpdatePostRequest;
import com.rem.chat.pojo.response.CheckVersionResponse;
import com.rem.chat.pojo.response.LoadAllUpdateResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

public interface UpdateService {
    /**
     * 获取更新记录列表
     * @param param 分页参数
     * @return 更新记录列表
     */
    LoadAllUpdateResponse loadAllUpdate(PageRequest param);

    /**
     * 添加更新记录
     * @param param 更新记录参数
     * @param file 安装包
     * @return 是否添加成功
     */
    Boolean addUpdate(UpdateAddRequest param, MultipartFile file) throws IOException;

    /**
     * 修改更新记录
     * @param param 更新记录参数
     * @param file 安装包
     * @return 是否修改成功
     */
    Boolean modifyUpdate(UpdateModifyRequest param, MultipartFile file) throws IOException;

    /**
     * 删除更新记录
     * @param id 更新记录id
     * @return 是否删除成功
     */
    Boolean delUpdate(Integer id) throws IOException;

    /**
     * 发布更新记录
     * @param param 发布参数
     * @return 是否发布成功
     */
    Boolean postUpdate(UpdatePostRequest param);

    /**
     * 检查更新
     * @param version 版本号
     * @param userId 用户id
     * @return 更新信息
     */
    CheckVersionResponse checkVersion(String version, String userId);
}
